pycharm和jupyter中的模块导入详解 您所在的位置:网站首页 jupyter notebook如何安装模块 pycharm和jupyter中的模块导入详解

pycharm和jupyter中的模块导入详解

2023-06-30 02:17| 来源: 网络整理| 查看: 265

文章目录 一,如何将自己写的库,在其他模块中导入该库(jupyter和pycharm中一样的方式)二, 一个package(包)内的模块如何访问另一个package中的模块三,jupyter和 pycharm中的区别四,参考博客:

一,如何将自己写的库,在其他模块中导入该库(jupyter和pycharm中一样的方式)

个人理解,在pycharm中的概念包(package),目录(Directory)和jupyter中的概念Folder(文件夹),在导入模块的时候,这三个所起的作用是一样的。

第一步,在系统中添加自己写的库的绝对路径(完整路径) 绝对路径(思考):为什么我们程序中的绝对路径必须使用双反斜杠,因为其中一个反斜杠用作转义,如果只写一个反斜杠,那么就会将路径中的紧跟反斜杠的字母转义,也许输出就不是原来那个字符了。如果这个反斜杠后面紧跟的是另一个反斜杠,那么反斜杠的转义字符还是反斜杠,那么两个反斜杠的最终输出为一个反斜杠字符,路径中的其他字符就不会被转义,保持原样输出,C:\Users\自己电脑用户名\PycharmProjects\Debug_program\jj,就和我们平时理解的绝对路径看起来一样了。 import sys,os path_module = os.path.abspath(os.path.join('C:\\Users\\自己电脑用户名\\PycharmProjects\\Debug_program\\jj')) if path_module not in sys.path: sys.path.append(path_module)

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210128122512733.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzU0MzQyNDcz,size_16,color_FFFFFF,t_70#pic_center 其中linear_regression模块中是这样引入模块Operation的 在这里插入图片描述

from .Operation import h dd= h() dd.j('man11111111111111111')

以上是在pycharm中这样导入情况。

接下来,在jupyter中其实是一样的

这是最外层的目录结构: 在这里插入图片描述

我们要在04_extensions文件中的Code模块中导入自定义的 lincoln库

import numpy as np from numpy import ndarray import sys,os path_module = os.path.abspath(os.path.join('C:\\Users\\自己电脑用户名\\Desktop\\from scratch\\python_code\\lincoln')) if path_module not in sys.path: sys.path.append(path_module) from lincoln.layers import Dense from lincoln.losses import SoftmaxCrossEntropy, MeanSquaredError from lincoln.optimizers import Optimizer,SGD,SGDMomentum from lincoln.activations import Sigmoid,Tanh,Linear,ReLU from lincoln.network import NeuralNetwork from lincoln.train import Trainer from lincoln.utils import mnist from lincoln.utils.np_utils import softmax

lincoln库中的目录结构如图:

在这里插入图片描述

注意 :lincoln库中的每一个模块的内部引用(这些模块都同一个目录下),都是通过点+模块名的方式进行引用,例如:在dense模块中是这样引用base模块的

from .base import ParamOperation

这一点和pycharm中的方式一样

二, 一个package(包)内的模块如何访问另一个package中的模块 只需要在想要运行的模块中添加如下代码段: mport sys,os this_path = os.path.abspath(os.path.join('..')) if this_path not in sys.path: sys.path.append(this_path)

注意 :两点表示可以访问本模块父目录中的其他包,以及其他包中的模块

如果两个模块都在该项目的根目录下,都是可以直接引用的,在jupyter和pycharm中都是一样的

在这里插入图片描述

在jupyter中(比如要在test1模块中导入test2模块):

在这里插入图片描述

如下的导入方式是错的,在jupyter和pycharm一样: 在这里插入图片描述

在这里插入图片描述 注意 :除非外部调用可以这样写,内部互相调用这样写会报错。

三,jupyter和 pycharm中的区别 在jupyter中无论两个同级模块的目录结构有多深,都不影响两个之间的互相引用,可以使用如下代码,导入都是没有问题的 from Operation import h import Operation

注意 :被引用方必须是 .py文件,引用方是 .ipynb文件

这里科普一下,在jupyter中如何将.ipynb文件转化为.py文件File->Download as->Python(.py) 在这里插入图片描述保存到你目前所在的模块的父文件夹中,使得两个处在同一级目录,再进行互相引用但是在pycharm中不同想要实现同级模块的调用需要加上最外层的包名(项目名下的第一级开始),依次通过.来逐层引用,比如: 在这里插入图片描述 注意 :不加外部的包名也可以实现,但是程序中会有红线,还是加上比较好。

如果概念那里理解的不对或者错误,请大家提出来,共同解决,谢谢!!! 如果帮助到你,记得点赞,评论哦~,谢谢读完!

四,参考博客:

python模块导入



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有